<html>
<head><meta charset="utf-8"><title>design meeting 2020.03.10 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html">design meeting 2020.03.10</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="190216727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190216727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190216727">(Mar 10 2020 at 19:50)</a>:</h4>
<p>Design meeting starts in 10 minutes</p>



<a name="190217302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217302">(Mar 10 2020 at 19:55)</a>:</h4>
<p>I forget, do we have a hackmd doc or something that we use for minutes/agendas? (Maybe that'd be useful:)</p>



<a name="190217327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217327">(Mar 10 2020 at 19:55)</a>:</h4>
<p>e.g., I could imagine collecting the agenda for each week in a fixed doc and then linking to the actual discussion thread</p>



<a name="190217389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217389">(Mar 10 2020 at 19:56)</a>:</h4>
<p>(this would allow us to accumulate agenda questions a bit over the week)</p>



<a name="190217452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217452">(Mar 10 2020 at 19:56)</a>:</h4>
<p>and/or write out updates when things happen</p>



<a name="190217527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217527">(Mar 10 2020 at 19:57)</a>:</h4>
<p>That's a good idea, let's set one up for next week</p>



<a name="190217558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217558">(Mar 10 2020 at 19:57)</a>:</h4>
<p>We don't have one at the moment</p>



<a name="190217644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217644">(Mar 10 2020 at 19:58)</a>:</h4>
<p>hackmd or paper?</p>



<a name="190217687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217687">(Mar 10 2020 at 19:58)</a>:</h4>
<p>the eternal question</p>



<a name="190217726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217726">(Mar 10 2020 at 19:59)</a>:</h4>
<div class="message_inline_image"><a href="https://media.giphy.com/media/xUPGcvSRiAdLz4UGoE/giphy.gif" target="_blank" title="https://media.giphy.com/media/xUPGcvSRiAdLz4UGoE/giphy.gif"><img src="https://media.giphy.com/media/xUPGcvSRiAdLz4UGoE/giphy.gif"></a></div><p>"hackmd, or paper?"</p>



<a name="190217747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217747">(Mar 10 2020 at 19:59)</a>:</h4>
<p>I think hackmd is better for longer-lived documents, and paper is better for fast iteration</p>



<a name="190217768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217768">(Mar 10 2020 at 19:59)</a>:</h4>
<p>my experience: paper is better if people might leave comments</p>



<a name="190217771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217771">(Mar 10 2020 at 19:59)</a>:</h4>
<p>but there's not that much difference <span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span></p>



<a name="190217794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217794">(Mar 10 2020 at 20:00)</a>:</h4>
<p>but yeah, indeed :)</p>



<a name="190217824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217824">(Mar 10 2020 at 20:00)</a>:</h4>
<p>let's go with hackmd because</p>



<a name="190217841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217841">(Mar 10 2020 at 20:00)</a>:</h4>
<p>it'll be something we can copy and paste into zulip :)</p>



<a name="190217862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217862">(Mar 10 2020 at 20:00)</a>:</h4>
<p>e.g. for compiler team updates and the like</p>



<a name="190217919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217919">(Mar 10 2020 at 20:01)</a>:</h4>
<p><a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?sync=&amp;type=" target="_blank" title="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?sync=&amp;type=">https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?sync=&amp;type=</a></p>



<a name="190217928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190217928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190217928">(Mar 10 2020 at 20:01)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="692">@WG-traits</span> meeting time</p>



<a name="190218039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218039">(Mar 10 2020 at 20:02)</a>:</h4>
<p>I'm filling in some details into the hackmd</p>



<a name="190218341"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218341" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218341">(Mar 10 2020 at 20:05)</a>:</h4>
<p><span class="user-mention" data-user-id="125131">@detrumi</span> and <span class="user-mention" data-user-id="129457">@Florian Diebold</span> -- I never got time to look into the impl trait integration work y'all did</p>



<a name="190218345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218345">(Mar 10 2020 at 20:05)</a>:</h4>
<p>do you think we might be able to talk about it here some?</p>



<a name="190218452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218452">(Mar 10 2020 at 20:06)</a>:</h4>
<p>I didn't have time to implement Florian's suggestions yet, but he did point out some problems with the PR</p>



<a name="190218480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218480">(Mar 10 2020 at 20:07)</a>:</h4>
<p>OK, it's mostly that I thought it'd be interesting to discuss how things are expected to work</p>



<a name="190218521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218521">(Mar 10 2020 at 20:07)</a>:</h4>
<p>One announcement worth making: last week we had a compiler team design meeting where we discussed the idea of extracting out the representation of types to create a shared library that chalk, rust-analyzer, and rustc can all use</p>



<a name="190218522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218522">(Mar 10 2020 at 20:07)</a>:</h4>
<p>In integrating with RA you mean? Sounds good</p>



<a name="190218531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218531">(Mar 10 2020 at 20:08)</a>:</h4>
<p>Sorry, late</p>



<a name="190218585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218585">(Mar 10 2020 at 20:08)</a>:</h4>
<p>Yeah, I'm sort of imagining this meeting as a place to (a) raise questions and (b) discuss interesting design points so that the whole group can kind of "keep up" with what's going on</p>



<a name="190218616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218616">(Mar 10 2020 at 20:08)</a>:</h4>
<p>(sketch of maybe how we should manage our agenda: 10-15 minutes of announcements / updating doc, then pick two topics for spend 20 min on each?)</p>



<a name="190218641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218641">(Mar 10 2020 at 20:09)</a>:</h4>
<p>I think that's usually what it ends up being?</p>



<a name="190218658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218658">(Mar 10 2020 at 20:09)</a>:</h4>
<p>Or one topic of 40 minutes</p>



<a name="190218712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218712">(Mar 10 2020 at 20:09)</a>:</h4>
<p>having at least 2 topics feels more productive, unless there's a big blocker</p>



<a name="190218764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218764">(Mar 10 2020 at 20:10)</a>:</h4>
<p>I guess it depends on if we have 2 topics</p>



<a name="190218798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218798">(Mar 10 2020 at 20:10)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190218641" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190218641">said</a>:</p>
<blockquote>
<p>I think that's usually what it ends up being?</p>
</blockquote>
<p>yes i'm partly just trying to "state out loud" the structure we seem to be evolving</p>



<a name="190218815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218815">(Mar 10 2020 at 20:10)</a>:</h4>
<p>I've got 3 nominated topics in <a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?edit" target="_blank" title="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?edit">the hackmd</a> so far :P</p>



<a name="190218875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218875">(Mar 10 2020 at 20:11)</a>:</h4>
<p>though I suspect I'm missing some progress reports</p>



<a name="190218881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190218881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190218881">(Mar 10 2020 at 20:11)</a>:</h4>
<p>oh, I guess there's the work I did</p>



<a name="190219031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219031">(Mar 10 2020 at 20:13)</a>:</h4>
<p>based on the work that <span class="user-mention" data-user-id="220273">@Jane Lusby</span> did, i'm updating the roadmap.toml to mark "add <code>&amp;self</code> to interning methods" as completely done</p>



<a name="190219036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219036">(Mar 10 2020 at 20:13)</a>:</h4>
<p>seems like the next bit of work is adding <code>&amp;self</code> to the data methods</p>



<a name="190219060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219060">(Mar 10 2020 at 20:13)</a>:</h4>
<p>I know there's a WIP PR for that, not sure if there are open questions</p>



<a name="190219077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219077">(Mar 10 2020 at 20:13)</a>:</h4>
<p>there are open questions</p>



<a name="190219083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219083">(Mar 10 2020 at 20:13)</a>:</h4>
<p>I'm super happy for that work to land, because it means I don't have to do lifetime transmute in the integration</p>



<a name="190219134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219134">(Mar 10 2020 at 20:14)</a>:</h4>
<p>(Side not that I feel like, ideally, we'd have "sprint goals" that we could be checking in on and updating progress notes.)</p>



<a name="190219135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219135">(Mar 10 2020 at 20:14)</a>:</h4>
<p>i smacked a bunch of <code>unimplemented!()</code> calls in places where i wasnt sure how it should be handled</p>



<a name="190219139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219139">(Mar 10 2020 at 20:14)</a>:</h4>
<p>like display impls</p>



<a name="190219168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219168">(Mar 10 2020 at 20:14)</a>:</h4>
<p>I figured we probably need a wrapper struct to bundle the interner with the object for displaying like <code>Path</code></p>



<a name="190219190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219190">(Mar 10 2020 at 20:14)</a>:</h4>
<p>so we could do <code>type.display(interner)</code> when we want to print it</p>



<a name="190219198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219198">(Mar 10 2020 at 20:14)</a>:</h4>
<p>things like that</p>



<a name="190219204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219204">(Mar 10 2020 at 20:14)</a>:</h4>
<p>fyi just merged the last of the PRs for <a href="https://github.com/rust-lang-nursery/chalk/issues/340" target="_blank" title="https://github.com/rust-lang-nursery/chalk/issues/340">chalk#340</a> and closed the issue</p>



<a name="190219227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219227">(Mar 10 2020 at 20:15)</a>:</h4>
<p>awesome</p>



<a name="190219232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219232">(Mar 10 2020 at 20:15)</a>:</h4>
<p>ok, let me add a few notes on that to the doc -- I can try to make some time to review the PR later and leave comments</p>



<a name="190219240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219240">(Mar 10 2020 at 20:15)</a>:</h4>
<p>okay</p>



<a name="190219269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219269">(Mar 10 2020 at 20:15)</a>:</h4>
<p>you mentioned a roadmap.toml</p>



<a name="190219274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219274">(Mar 10 2020 at 20:15)</a>:</h4>
<p>where does that live?</p>



<a name="190219283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219283">(Mar 10 2020 at 20:15)</a>:</h4>
<p><a href="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html" target="_blank" title="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html">https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html</a></p>



<a name="190219368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219368">(Mar 10 2020 at 20:16)</a>:</h4>
<p>The toml itself is in the wg-traits repo: <a href="https://github.com/rust-lang/wg-traits/blob/master/roadmap.toml" target="_blank" title="https://github.com/rust-lang/wg-traits/blob/master/roadmap.toml">https://github.com/rust-lang/wg-traits/blob/master/roadmap.toml</a></p>



<a name="190219384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219384">(Mar 10 2020 at 20:16)</a>:</h4>
<p>yep, I try to update it in response to these meetings</p>



<a name="190219398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219398">(Mar 10 2020 at 20:16)</a>:</h4>
<p>though I think my last update kind of messed up the rendering :)</p>



<a name="190219400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219400">(Mar 10 2020 at 20:16)</a>:</h4>
<p>need some line breaks</p>



<a name="190219416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219416">(Mar 10 2020 at 20:17)</a>:</h4>
<p>trying not to yah shake <em>too</em> badly on making it pretty</p>



<a name="190219422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219422">(Mar 10 2020 at 20:17)</a>:</h4>
<p>though...it does need a bit of shaving</p>



<a name="190219445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219445">(Mar 10 2020 at 20:17)</a>:</h4>
<p>oh, hmm, it looks better than I remembered, maybe somebody did some fixing :)</p>



<a name="190219451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219451">(Mar 10 2020 at 20:17)</a>:</h4>
<p>Ok, so as far topics for today?</p>



<a name="190219459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219459">(Mar 10 2020 at 20:17)</a>:</h4>
<ul>
<li>
<p>Design meeting of compiler to discuss extracting a rust-ty library -- nikomatsakis<br>
    * How does this work interact with this group? Maybe a good thing for next sprint</p>
</li>
<li>
<p>How to handle debruijn and type parameter indexing?<br>
    * building on <a href="https://gist.github.com/fe440aec437f7e8ad4cce8319954a973" target="_blank" title="https://gist.github.com/fe440aec437f7e8ad4cce8319954a973">the gist</a> that I wrote, I'm not sure what to do</p>
</li>
<li>
<p>Expected pattern for integrating impl Trait into rust-analyzer etc -- nikomatsakis<br>
    * I'd like to understand better what detrumi + flodiebold were discussing -- nikomatsakis</p>
</li>
<li>
<p>rustc integration: <code>TypeOutlives</code>, <code>RegionOutlives</code>, <code>Subtype</code></p>
</li>
</ul>



<a name="190219468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219468">(Mar 10 2020 at 20:17)</a>:</h4>
<p>that's the list from the doc</p>



<a name="190219547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219547">(Mar 10 2020 at 20:18)</a>:</h4>
<p>hmm</p>



<a name="190219561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219561">(Mar 10 2020 at 20:18)</a>:</h4>
<p>I think we should leave the first point for next week, and plan for the next sprint then</p>



<a name="190219579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219579">(Mar 10 2020 at 20:18)</a>:</h4>
<p>agreed</p>



<a name="190219580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219580">(Mar 10 2020 at 20:18)</a>:</h4>
<p>I agree</p>



<a name="190219595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219595">(Mar 10 2020 at 20:18)</a>:</h4>
<p>I had suggested the third point because</p>



<a name="190219609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219609">(Mar 10 2020 at 20:18)</a>:</h4>
<p>it was relatively concrete</p>



<a name="190219616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219616">(Mar 10 2020 at 20:18)</a>:</h4>
<p>last point I think <span class="user-mention" data-user-id="116009">@nikomatsakis</span> and I can talk about in other thread</p>



<a name="190219649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219649">(Mar 10 2020 at 20:19)</a>:</h4>
<p>so maybe let's start there...</p>



<a name="190219660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219660">(Mar 10 2020 at 20:19)</a>:</h4>
<p>I'm also curious about impl Trait :)</p>



<a name="190219662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219662">(Mar 10 2020 at 20:19)</a>:</h4>
<p>So, on impl Trait...</p>



<a name="190219671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219671">(Mar 10 2020 at 20:19)</a>:</h4>
<p>The discussion we had was mainly about things missing in my PR</p>



<a name="190219702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219702">(Mar 10 2020 at 20:19)</a>:</h4>
<p>Because it didn't allow for some things like binders and trait bounds (e.g. <code>impl Iterator&lt;Item = T&gt;</code>)</p>



<a name="190219759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219759">(Mar 10 2020 at 20:20)</a>:</h4>
<p>Hmm</p>



<a name="190219771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219771">(Mar 10 2020 at 20:20)</a>:</h4>
<p>not to distract but what do we mean by "Model <code>impl Trait</code>"</p>



<a name="190219803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219803">(Mar 10 2020 at 20:20)</a>:</h4>
<p>Not a distraction at all :) goal of discussing is precisely to answer questions like that (and get us all on same page)</p>



<a name="190219810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219810">(Mar 10 2020 at 20:20)</a>:</h4>
<p>if its too big of a topic I dont mind asking in a diff thread</p>



<a name="190219817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219817">(Mar 10 2020 at 20:20)</a>:</h4>
<p>okay</p>



<a name="190219854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219854">(Mar 10 2020 at 20:21)</a>:</h4>
<p>basically the question is -- if you have rust code with impl Trait, what role does chalk have in compiling that?</p>



<a name="190219882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219882">(Mar 10 2020 at 20:21)</a>:</h4>
<p>impl Trait meaning an implementation of an arbitrary trait for an arbitrary type / generic?</p>



<a name="190219937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219937">(Mar 10 2020 at 20:22)</a>:</h4>
<p>impl Trait like the return type</p>



<a name="190219940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219940">(Mar 10 2020 at 20:22)</a>:</h4>
<p>i see i see</p>



<a name="190219941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219941">(Mar 10 2020 at 20:22)</a>:</h4>
<p>impl Trait meaning things like</p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">impl</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">22</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>



<a name="190219944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219944">(Mar 10 2020 at 20:22)</a>:</h4>
<p><a href="https://doc.rust-lang.org/stable/rust-by-example/trait/impl_trait.html" target="_blank" title="https://doc.rust-lang.org/stable/rust-by-example/trait/impl_trait.html">https://doc.rust-lang.org/stable/rust-by-example/trait/impl_trait.html</a></p>



<a name="190219949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219949">(Mar 10 2020 at 20:22)</a>:</h4>
<p>ooooo</p>



<a name="190219960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219960">(Mar 10 2020 at 20:22)</a>:</h4>
<p>yey e</p>



<a name="190219968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219968">(Mar 10 2020 at 20:22)</a>:</h4>
<p>im familiar</p>



<a name="190219986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219986">(Mar 10 2020 at 20:22)</a>:</h4>
<p>is it specifically return type impl trait?</p>



<a name="190219987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190219987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190219987">(Mar 10 2020 at 20:22)</a>:</h4>
<p>which desugars to something like</p>
<div class="codehilite"><pre><span></span><span class="k">type</span> <span class="nc">Foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="n">Debug</span><span class="p">;</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">22</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>where the compiler infers what the concrete type <code>Foo</code> is</p>



<a name="190220081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220081">(Mar 10 2020 at 20:22)</a>:</h4>
<p>this is existential qualification vs universal right?</p>



<a name="190220088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220088">(Mar 10 2020 at 20:23)</a>:</h4>
<p>argument position should be possible as well, but just supporting return position at first is fine too</p>



<a name="190220099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220099">(Mar 10 2020 at 20:23)</a>:</h4>
<p>not sure if qualification or quantification</p>



<a name="190220105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220105">(Mar 10 2020 at 20:23)</a>:</h4>
<p>manish has explained this to me before</p>



<a name="190220121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220121">(Mar 10 2020 at 20:23)</a>:</h4>
<p>"existential"</p>



<a name="190220124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220124">(Mar 10 2020 at 20:23)</a>:</h4>
<p>yea</p>



<a name="190220127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220127">(Mar 10 2020 at 20:23)</a>:</h4>
<p>argument position is actually just sugar for normal generics</p>



<a name="190220133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220133">(Mar 10 2020 at 20:23)</a>:</h4>
<p>return position is existential because its determined by the callee</p>



<a name="190220139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220139">(Mar 10 2020 at 20:23)</a>:</h4>
<p>right</p>



<a name="190220152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220152">(Mar 10 2020 at 20:23)</a>:</h4>
<p>k continue</p>



<a name="190220169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220169">(Mar 10 2020 at 20:24)</a>:</h4>
<p>in any case from <em>Chalk's</em> point of view the "core abstraction" is basically that you have a declared <code>impl Trait</code> type, like <code>type Foo = impl Trait</code></p>



<a name="190220238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220238">(Mar 10 2020 at 20:24)</a>:</h4>
<p>except that right now what <span class="user-mention" data-user-id="125131">@detrumi</span> has implemented is a bit different--</p>



<a name="190220262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220262">(Mar 10 2020 at 20:24)</a>:</h4>
<p>in that chalk is also told what the <em>hidden type</em> is (i.e., the type that the compiler infers)</p>



<a name="190220294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220294">(Mar 10 2020 at 20:24)</a>:</h4>
<p>(I think that one of the next steps we need to discuss is how/where that inference takes place and what role chalk has in that)</p>



<a name="190220295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220295">(Mar 10 2020 at 20:24)</a>:</h4>
<p>so sneaky</p>



<a name="190220322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220322">(Mar 10 2020 at 20:25)</a>:</h4>
<p>but <span class="user-mention" data-user-id="125131">@detrumi</span> so you were saying that bounds like <code>impl Iterator&lt;Item = u32&gt;</code> are not supported,</p>



<a name="190220355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220355">(Mar 10 2020 at 20:25)</a>:</h4>
<p>I wans't clear if there was a plan there? It seems like something we should be able to support I think</p>



<a name="190220426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220426">(Mar 10 2020 at 20:26)</a>:</h4>
<p>Yes, but that should be as easy as updating the <a href="https://github.com/rust-lang/chalk/pull/324/files#diff-3755a68ff1da787d17a42bf27b745aabR425" target="_blank" title="https://github.com/rust-lang/chalk/pull/324/files#diff-3755a68ff1da787d17a42bf27b745aabR425"><code>ImplTraitDatum</code></a></p>



<a name="190220467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220467">(Mar 10 2020 at 20:26)</a>:</h4>
<p>also egads we didn't merge <a href="https://github.com/rust-lang-nursery/chalk/issues/324" target="_blank" title="https://github.com/rust-lang-nursery/chalk/issues/324">chalk#324</a> yet?! :)</p>



<a name="190220491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220491">(Mar 10 2020 at 20:27)</a>:</h4>
<p>for some reason I thought we did</p>



<a name="190220498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220498">(Mar 10 2020 at 20:27)</a>:</h4>
<p>The bounds shouldn't be just <code>Vec&lt;TraitBound&lt;I&gt;&gt;</code>, but something using <code>QuantifiedWhereClause</code></p>



<a name="190220516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220516">(Mar 10 2020 at 20:27)</a>:</h4>
<p>yeah ok that's kind of what I would expect</p>



<a name="190220526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220526">(Mar 10 2020 at 20:27)</a>:</h4>
<p>Oh, I thought you wanted to review it still?</p>



<a name="190220535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220535">(Mar 10 2020 at 20:27)</a>:</h4>
<p>But merging would be nice too</p>



<a name="190220554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220554">(Mar 10 2020 at 20:27)</a>:</h4>
<p>well I think I thought I reviewed it :)</p>



<a name="190220560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220560">(Mar 10 2020 at 20:27)</a>:</h4>
<p>I will do so!</p>



<a name="190220631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220631">(Mar 10 2020 at 20:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/impl.20trait/near/189893382" title="#narrow/stream/144729-wg-traits/topic/impl.20trait/near/189893382">said</a>:</p>
<blockquote>
<p>ok I failed <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span> let me try again</p>
</blockquote>
<p>You tried a few times <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="190220653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220653">(Mar 10 2020 at 20:28)</a>:</h4>
<p>lol sigh</p>



<a name="190220665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220665">(Mar 10 2020 at 20:28)</a>:</h4>
<p>Should've reminded you more often I guess</p>



<a name="190220704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220704">(Mar 10 2020 at 20:29)</a>:</h4>
<p>so I guess the thing that I wanted to figure out is</p>



<a name="190220712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220712">(Mar 10 2020 at 20:29)</a>:</h4>
<p>let's say you're rust-analyzer</p>



<a name="190220729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220729">(Mar 10 2020 at 20:29)</a>:</h4>
<p>and you have some Rust code like</p>
<div class="codehilite"><pre><span></span><span class="k">type</span> <span class="nc">Foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="n">Debug</span><span class="p">;</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>



<a name="190220839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220839">(Mar 10 2020 at 20:30)</a>:</h4>
<p>at the moment, when type-checking code <strong>from outside the module</strong> (or at least, code that invokes <code>foo</code>), we're kind of "all set" in some sense. This is because, for that code, they want to use <code>Foo</code> as an opaque type.</p>



<a name="190220870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220870">(Mar 10 2020 at 20:30)</a>:</h4>
<p>The way that rustc works now, we will type-check <code>foo</code>, which will infer the hidden type for <code>Foo</code></p>



<a name="190220954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220954">(Mar 10 2020 at 20:31)</a>:</h4>
<p>but what we haven't kind of talked through is what rust-analyzer should be doing in order to infer that hidden type -- i.e., when type-checking the body of <code>foo</code>, and we don't know the hidden type for <code>Foo</code> yet, etc</p>



<a name="190220976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190220976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190220976">(Mar 10 2020 at 20:31)</a>:</h4>
<p>maybe I should have chosen more unique names :P</p>



<a name="190221012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221012">(Mar 10 2020 at 20:32)</a>:</h4>
<p>I'm not sure if that's something that <span class="user-mention" data-user-id="129457">@Florian Diebold</span> plus you discussed at all yet?</p>



<a name="190221071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221071">(Mar 10 2020 at 20:32)</a>:</h4>
<p>For rust-analyzer it's kinda problematic that they have to go through the function body to get the hidden type</p>



<a name="190221082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221082">(Mar 10 2020 at 20:32)</a>:</h4>
<p>(It occurs to me that a useful thing to do might be to go try to write out what rustc does now, too. Would make a nice addition to the rusc-dev-guide, assuming it's not already written down.)</p>



<a name="190221085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221085">(Mar 10 2020 at 20:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190221012" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190221012">said</a>:</p>
<blockquote>
<p>I'm not sure if that's something that <span class="user-mention silent" data-user-id="129457">Florian Diebold</span> plus you discussed at all yet?</p>
</blockquote>
<p>We did discuss that a bit</p>



<a name="190221108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221108">(Mar 10 2020 at 20:32)</a>:</h4>
<p>(There are some aspects that I think are not necessarily the behavior we want long term.)</p>



<a name="190221144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221144">(Mar 10 2020 at 20:33)</a>:</h4>
<p>Side note: there's already a <a href="https://github.com/rust-analyzer/rust-analyzer/pull/3446" target="_blank" title="https://github.com/rust-analyzer/rust-analyzer/pull/3446">rust-analyzer PR</a> with some open todo's for integrating chalk into rust-analyzer</p>



<a name="190221151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221151">(Mar 10 2020 at 20:33)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190221071" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190221071">said</a>:</p>
<blockquote>
<p>For rust-analyzer it's kinda problematic that they have to go through the function body to get the hidden type</p>
</blockquote>
<p>So, hmm,</p>



<a name="190221165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221165">(Mar 10 2020 at 20:33)</a>:</h4>
<p>you only need the hidden type because of "auto trait leakage"</p>



<a name="190221180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221180">(Mar 10 2020 at 20:33)</a>:</h4>
<p>(presuming we're not in <code>Reveal</code> mode)</p>



<a name="190221241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221241">(Mar 10 2020 at 20:34)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> mentioned that, but I'm not entirely up to speed with that</p>



<a name="190221271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221271">(Mar 10 2020 at 20:34)</a>:</h4>
<p>with auto-trait leakage? does everybody know what I mean by that?</p>



<a name="190221274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221274">(Mar 10 2020 at 20:34)</a>:</h4>
<p>auto traits make things difficult</p>



<a name="190221372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221372">(Mar 10 2020 at 20:35)</a>:</h4>
<p>i.e., if you have a function like </p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">do_something</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="n">x</span>: <span class="nb">Vec</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">impl</span><span class="w"> </span><span class="nb">Iterator</span><span class="o">&lt;</span><span class="n">Item</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>and then you invoke</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">do_something</span><span class="p">(</span><span class="n">vec</span><span class="o">!</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">]);</span><span class="w"></span>
</pre></div>


<p>then the type of <code>x</code> will be the "opaque type" that is returned by <code>do_something</code></p>



<a name="190221373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221373">(Mar 10 2020 at 20:35)</a>:</h4>
<p>i think you've explained it but I dont recall</p>



<a name="190221383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221383">(Mar 10 2020 at 20:36)</a>:</h4>
<p>i wouldn't mind a refresher</p>



<a name="190221465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221465">(Mar 10 2020 at 20:36)</a>:</h4>
<p>so if (approximately) desugar into</p>
<div class="codehilite"><pre><span></span><span class="k">type</span> <span class="nc">DoSomething</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="nb">Iterator</span><span class="o">&lt;</span><span class="n">Item</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">T</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">do_something</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="n">x</span>: <span class="nb">Vec</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">DoSomething</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>



<a name="190221496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221496">(Mar 10 2020 at 20:37)</a>:</h4>
<p>then the type of <code>x</code> would be <code>DoSomething&lt;i32&gt;</code></p>



<a name="190221501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221501">(Mar 10 2020 at 20:37)</a>:</h4>
<p>(make sense so far?)</p>



<a name="190221535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221535">(Mar 10 2020 at 20:37)</a>:</h4>
<p>yea this is all existentials</p>



<a name="190221544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221544">(Mar 10 2020 at 20:37)</a>:</h4>
<p>in other words, all we know about <code>x</code> is that it implements <code>Iterator</code>-- except that's not quite right</p>



<a name="190221556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221556">(Mar 10 2020 at 20:37)</a>:</h4>
<p>in general, you can't see the underling type -- but we allow auto traits to see it</p>



<a name="190221578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221578">(Mar 10 2020 at 20:38)</a>:</h4>
<p>so notably <code>DoSomething&lt;i32&gt;: Send</code> is true if the hidden type implements <code>Send</code></p>



<a name="190221637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221637">(Mar 10 2020 at 20:38)</a>:</h4>
<p>this is very convenient but also kind of annoying from an impl POV :)</p>



<a name="190221677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221677">(Mar 10 2020 at 20:39)</a>:</h4>
<p>in terms of the chalk desugaring, it shows up the rules we create</p>



<a name="190221889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221889">(Mar 10 2020 at 20:40)</a>:</h4>
<p>Right. As I put it <a href="https://github.com/rust-lang/chalk/pull/324/files#diff-265f2474acd1cd36ff4847e8c1f3cc89R122" target="_blank" title="https://github.com/rust-lang/chalk/pull/324/files#diff-265f2474acd1cd36ff4847e8c1f3cc89R122">in the PR</a>:</p>
<div class="codehilite"><pre><span></span>Given `opaque type T&lt;..&gt;: A + B = HiddenTy;`, we generate:
    ```
AliasEq(T&lt;..&gt; = HiddenTy) :- Reveal.
AliasEq(T&lt;..&gt; = !T).
Implemented(!T: A).
Implemented(!T: B).
Implemented(!T: Send) :- Implemented(A + B: Send). // For all auto traits
```
where `!T` is the placeholder for the unnormalized type `T&lt;..&gt;`.
</pre></div>



<a name="190221990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190221990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190221990">(Mar 10 2020 at 20:41)</a>:</h4>
<p>I expected</p>
<div class="codehilite"><pre><span></span>Implemented(!T: Send) :- Implemented(HiddenTy: Send).
</pre></div>



<a name="190222148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222148">(Mar 10 2020 at 20:43)</a>:</h4>
<p>I'm not super familiar with prolog syntax, what does <code>:-</code> mean again?</p>



<a name="190222162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222162">(Mar 10 2020 at 20:43)</a>:</h4>
<p>Yeah that makes snense</p>



<a name="190222165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222165">(Mar 10 2020 at 20:43)</a>:</h4>
<p>"if"</p>



<a name="190222177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222177">(Mar 10 2020 at 20:43)</a>:</h4>
<p>tyty</p>



<a name="190222253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222253">(Mar 10 2020 at 20:43)</a>:</h4>
<p>in other words, <code>Implemented(!T: A).</code> means "we know that the opaque type implements <code>A</code>", and <code>Implemented(!T: Send) :- Implemented(HiddenTy: Send)</code> means "we know that the opaque type implements <code>Send</code> if the hidden type implements <code>Send</code>"</p>



<a name="190222311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222311">(Mar 10 2020 at 20:44)</a>:</h4>
<p><span class="user-mention" data-user-id="125131">@detrumi</span> one thing I was thinking is that we might make the "hidden type" not be part of the datum</p>



<a name="190222330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222330">(Mar 10 2020 at 20:44)</a>:</h4>
<p>but rather be something that we request lazilly through the <code>RustIrDatabase</code> trait</p>



<a name="190222331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222331">(Mar 10 2020 at 20:44)</a>:</h4>
<p>why is the <code>!</code> there?</p>



<a name="190222340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222340">(Mar 10 2020 at 20:44)</a>:</h4>
<p>ooh normalized</p>



<a name="190222343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222343">(Mar 10 2020 at 20:44)</a>:</h4>
<p>comment at the bottom</p>



<a name="190222350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222350">(Mar 10 2020 at 20:44)</a>:</h4>
<p>that means "placeholder"</p>



<a name="190222359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222359">(Mar 10 2020 at 20:44)</a>:</h4>
<p>got it</p>



<a name="190222387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222387">(Mar 10 2020 at 20:45)</a>:</h4>
<p>so <code>?X</code> is like "a variable X whose value we have to figure out" and <code>!X</code> is "a variable X that we are using as a placeholder"</p>



<a name="190222401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222401">(Mar 10 2020 at 20:45)</a>:</h4>
<p>and <code>X</code> is like "some concrete type <code>X</code>"</p>



<a name="190222457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222457">(Mar 10 2020 at 20:45)</a>:</h4>
<p>and then there's bound vars (<code>^0</code>)</p>



<a name="190222471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222471">(Mar 10 2020 at 20:46)</a>:</h4>
<p>whats the difference between a placeholder and a type to be figured out, is a placeholder one thats already been figured out?</p>



<a name="190222523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222523">(Mar 10 2020 at 20:46)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190222311" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190222311">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> one thing I was thinking is that we might make the "hidden type" not be part of the datum</p>
</blockquote>
<p>Hmm, not sure if you can still identify it then</p>



<a name="190222535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222535">(Mar 10 2020 at 20:46)</a>:</h4>
<p>no, a placeholder is one that we don't try to figure it out</p>



<a name="190222540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222540">(Mar 10 2020 at 20:46)</a>:</h4>
<p>ah okay</p>



<a name="190222570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222570">(Mar 10 2020 at 20:46)</a>:</h4>
<p>think of it like </p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="n">t</span>: <span class="nc">T</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>when type-checking the body of <code>foo</code>, we use <code>T</code> as a placeholder type</p>



<a name="190222608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222608">(Mar 10 2020 at 20:47)</a>:</h4>
<p>ooh and that makes the AliasEq stuff make sense too</p>



<a name="190222618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222618">(Mar 10 2020 at 20:47)</a>:</h4>
<p>you setup the placeholder when not in reveal mode</p>



<a name="190222639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222639">(Mar 10 2020 at 20:47)</a>:</h4>
<p>right, but in reveal mode you can also use the hidden type</p>



<a name="190222651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222651">(Mar 10 2020 at 20:47)</a>:</h4>
<p>and otherwise those facts(?) below it for the placeholder arent needed because then you're checking against the type itself</p>



<a name="190222661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222661">(Mar 10 2020 at 20:47)</a>:</h4>
<p>exactly</p>



<a name="190222676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222676">(Mar 10 2020 at 20:47)</a>:</h4>
<p>cool</p>



<a name="190222679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222679">(Mar 10 2020 at 20:47)</a>:</h4>
<p>we know they should be true for the hidden type too (or something went wrong along the line)</p>



<a name="190222741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222741">(Mar 10 2020 at 20:48)</a>:</h4>
<p>Ok, 12 minutes left</p>



<a name="190222753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222753">(Mar 10 2020 at 20:48)</a>:</h4>
<p>Do we want to stay on impl Trait or switch?</p>



<a name="190222766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222766">(Mar 10 2020 at 20:48)</a>:</h4>
<p>Right, I think we'll get there once niko finally ( <span aria-label="stuck out tongue wink" class="emoji emoji-1f61c" role="img" title="stuck out tongue wink">:stuck_out_tongue_wink:</span>) reviews it. Next!</p>



<a name="190222802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222802">(Mar 10 2020 at 20:49)</a>:</h4>
<p>Do we want to talk about niko's progress?</p>



<a name="190222809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222809">(Mar 10 2020 at 20:49)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190222523" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10/near/190222523">said</a>:</p>
<blockquote>
<p>Hmm, not sure if you can still identify it then</p>
</blockquote>
<p>I think you could but I realize it's a small thing. Mostly I was thinking about "before we figure out everything, it'd be good to help rust-analyzer be able to work with code without specifying what the hidden type is", but I think it's kind of a distraction.</p>



<a name="190222825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222825">(Mar 10 2020 at 20:49)</a>:</h4>
<p>on debruijn indices</p>



<a name="190222851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222851">(Mar 10 2020 at 20:49)</a>:</h4>
<p>(always have to double check I spell it correctly )</p>



<a name="190222865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222865">(Mar 10 2020 at 20:49)</a>:</h4>
<p>either way is ok for me. I'll try to review the PR maybe after this mtg</p>



<a name="190222951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222951">(Mar 10 2020 at 20:50)</a>:</h4>
<p>after the meeting im gonna go ahead and fix the unimplemented!s for the DIsplay impls</p>



<a name="190222961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222961">(Mar 10 2020 at 20:50)</a>:</h4>
<p>so dont worry about reviewing the other PRs right away</p>



<a name="190222969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190222969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190222969">(Mar 10 2020 at 20:50)</a>:</h4>
<p>I think the high-level bit for the debruijn index refactoring is that I'm not quite sure what setup we really want, and I'm not that convinced that I was going down the right path</p>



<a name="190223004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223004">(Mar 10 2020 at 20:51)</a>:</h4>
<p>There was <a href="https://gist.github.com/nikomatsakis/fe440aec437f7e8ad4cce8319954a973" target="_blank" title="https://gist.github.com/nikomatsakis/fe440aec437f7e8ad4cce8319954a973">this gist</a></p>



<a name="190223005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223005">(Mar 10 2020 at 20:51)</a>:</h4>
<p>So I read through the gist</p>



<a name="190223018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223018">(Mar 10 2020 at 20:51)</a>:</h4>
<p>but was unclear about what the question was?</p>



<a name="190223041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223041">(Mar 10 2020 at 20:51)</a>:</h4>
<p>heh, yeah, I guess in some sense I didn't get there yet</p>



<a name="190223073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223073">(Mar 10 2020 at 20:51)</a>:</h4>
<p>I'm trying to page back in a bit</p>



<a name="190223083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223083">(Mar 10 2020 at 20:51)</a>:</h4>
<p>I think before you were in the camp that "the way rustc does it is better"</p>



<a name="190223143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223143">(Mar 10 2020 at 20:52)</a>:</h4>
<p>Yeah, and I was second guessing that somewhat</p>



<a name="190223159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223159">(Mar 10 2020 at 20:52)</a>:</h4>
<p>I guess there's a couple things that are different</p>



<a name="190223175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223175">(Mar 10 2020 at 20:52)</a>:</h4>
<p>But also that making this change would actually make it <em>easier</em> to bridge between rustc and chalk</p>



<a name="190223218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223218">(Mar 10 2020 at 20:53)</a>:</h4>
<p>one I guess is how we "name" or keep track of binders</p>



<a name="190223245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223245">(Mar 10 2020 at 20:53)</a>:</h4>
<p>I guess there are a few "timelines". Ultimately, I'd like to be using <em>the same representation</em></p>



<a name="190223265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223265">(Mar 10 2020 at 20:53)</a>:</h4>
<p>so there is no real "bridging"</p>



<a name="190223292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223292">(Mar 10 2020 at 20:53)</a>:</h4>
<p>also just fyi I am going to have to leave at or very shortly after 5</p>



<a name="190223362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223362">(Mar 10 2020 at 20:54)</a>:</h4>
<p>We could go with rustc's approach and switch later if it ends up becoming a problem</p>



<a name="190223419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223419">(Mar 10 2020 at 20:54)</a>:</h4>
<p>I have to think about what that means, I guess. I like how chalk handles all bindings and variables in a uniform way</p>



<a name="190223455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223455">(Mar 10 2020 at 20:55)</a>:</h4>
<p>anywa I guess there isn't really time to reach  a conclusion here</p>



<a name="190223480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223480">(Mar 10 2020 at 20:55)</a>:</h4>
<p>I guess that this week I will try to finish the gist and leave a few options</p>



<a name="190223508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223508">(Mar 10 2020 at 20:55)</a>:</h4>
<p>so, my opinion so far (which I still in not sure) it doesn't seem like a problem to name bound vars as <code>^0.0</code> (instead of the chalk way of <code>^0</code>)</p>



<a name="190223589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223589">(Mar 10 2020 at 20:56)</a>:</h4>
<p>I am trying to remember what gave me pause. I think the main thing was that</p>



<a name="190223597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223597">(Mar 10 2020 at 20:56)</a>:</h4>
<p>but that it seems better to track the number of bound vars at each level</p>



<a name="190223608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223608">(Mar 10 2020 at 20:56)</a>:</h4>
<p>when you had GATs</p>



<a name="190223625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223625">(Mar 10 2020 at 20:56)</a>:</h4>
<p>(which isn't done currently?)</p>



<a name="190223651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223651">(Mar 10 2020 at 20:56)</a>:</h4>
<p>so e.g. you have </p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">  </span><span class="k">type</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">X</span><span class="o">&gt;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="190223706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223706">(Mar 10 2020 at 20:57)</a>:</h4>
<p>both chalk and rustc today effectively combine the <code>SElf, X</code> parameters into a single continuous list</p>



<a name="190223721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223721">(Mar 10 2020 at 20:57)</a>:</h4>
<p>but that gets done in different ways, and in a different ordering</p>



<a name="190223777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223777">(Mar 10 2020 at 20:57)</a>:</h4>
<p>yeah, there's a FIXME somewhere in <code>chalk-rust-ir</code> I think to switch that</p>



<a name="190223783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223783">(Mar 10 2020 at 20:57)</a>:</h4>
<p>if we change to the <code>^X.Y</code> format, then it means that the "type parameters" that are in scope for <code>Foo::Bar</code> are coming from two distinct binding levels now</p>



<a name="190223854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223854">(Mar 10 2020 at 20:58)</a>:</h4>
<p>I think that makes sense?</p>



<a name="190223856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223856">(Mar 10 2020 at 20:58)</a>:</h4>
<p>which implies a certain amount of "translation" here or there or somewhere :)</p>



<a name="190223889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223889">(Mar 10 2020 at 20:58)</a>:</h4>
<p>well, right now if you have e.g. the alias placeholder for <code>Foo::Bar</code>, it has a single <code>Parametesr</code> list</p>



<a name="190223897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223897">(Mar 10 2020 at 20:58)</a>:</h4>
<p>which is a flat list of types</p>



<a name="190223924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223924">(Mar 10 2020 at 20:59)</a>:</h4>
<p>this works for a <code>^X</code>, it can just index into that list</p>



<a name="190223962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190223962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190223962">(Mar 10 2020 at 20:59)</a>:</h4>
<p>but for <code>^x.Y</code>, we sort of want a <code>Parameters</code> list with two segments</p>



<a name="190224031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224031">(Mar 10 2020 at 21:00)</a>:</h4>
<p>we can figure out the length of each segment by looking at how many type parameters the trait has, but it is more complex, and it makes that sort of substitution "different", so it suggests (to me) that <code>Parameters</code> might want to be more than a flat list</p>



<a name="190224099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224099">(Mar 10 2020 at 21:00)</a>:</h4>
<p>which might be kind of nice, since right now we have some special code in various places that converts a <code>Parameters</code> from a flat list into two lists</p>



<a name="190224109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224109">(Mar 10 2020 at 21:00)</a>:</h4>
<p>right</p>



<a name="190224113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224113">(Mar 10 2020 at 21:00)</a>:</h4>
<p>in <code>split.rs</code></p>



<a name="190224123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224123">(Mar 10 2020 at 21:00)</a>:</h4>
<p>but it's also a big departure from rustc</p>



<a name="190224166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224166">(Mar 10 2020 at 21:01)</a>:</h4>
<p>which would currently map <code>Parameters</code> to the <code>Substs</code> structure, which is a flat list</p>



<a name="190224193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224193">(Mar 10 2020 at 21:01)</a>:</h4>
<p>so anyway I think this is the conflict I didn't <em>quite</em> get to writing up</p>



<a name="190224212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224212">(Mar 10 2020 at 21:01)</a>:</h4>
<p>hmm</p>



<a name="190224236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224236">(Mar 10 2020 at 21:01)</a>:</h4>
<p>but it's 5:01pm</p>



<a name="190224285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224285">(Mar 10 2020 at 21:02)</a>:</h4>
<p>andI think you said you had a hard stop :)</p>



<a name="190224302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224302">(Mar 10 2020 at 21:02)</a>:</h4>
<p>Gotta run <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="190224314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224314">(Mar 10 2020 at 21:02)</a>:</h4>
<p>I do</p>



<a name="190224338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224338">(Mar 10 2020 at 21:02)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="190224345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224345">(Mar 10 2020 at 21:02)</a>:</h4>
<p>maybe Friday we can discuss more about rustc integration if you have time</p>



<a name="190224364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224364">(Mar 10 2020 at 21:02)</a>:</h4>
<p>we can schedule async</p>



<a name="190224405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224405">(Mar 10 2020 at 21:03)</a>:</h4>
<p>yep</p>



<a name="190224416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224416">(Mar 10 2020 at 21:03)</a>:</h4>
<p>I should be around.</p>



<a name="190224616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224616">(Mar 10 2020 at 21:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Is the plan to make space for next week's meeting in the same hackmd?</p>



<a name="190224639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224639">(Mar 10 2020 at 21:05)</a>:</h4>
<p><span class="user-mention" data-user-id="125131">@detrumi</span> that was my plan, yes!</p>



<a name="190224657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224657">(Mar 10 2020 at 21:05)</a>:</h4>
<p>then can just link to the hackmd from the web page etc</p>



<a name="190224659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.03.10/near/190224659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E03.2E10.html#190224659">(Mar 10 2020 at 21:05)</a>:</h4>
<p>and we have a log</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>